// 导入定义验证规则的包
const joi = require('joi')

// 用户名和密码的验证规则
const username = joi.string().alphanum().min(1).max(10).required()
const password = joi.string().pattern(/^[\S]{6,12}$/).required()

// 注册表单的验证规则对象
exports.reg_schema = {
  // 表示需要对 req.body 中的数据进行验证
  body: {
    username,
    password,
    repassword: password
  }
}

// 登陆表单的验证规则对象
exports.login_schema = {
  // 表示需要对 req.body 中的数据进行验证
  body: {
    username,
    password
  }
}

// 定义id,nickname,email的验证规则
const id = joi.number().integer().min(1).required()
const nickname = joi.string().required()
const email = joi.string().email().required()

// 更新用户基本信息的验证规则
exports.update_userinfo_schema = {
  body: {
    id,
    nickname,
    email
  }
}

const oldPwd = joi.string().pattern(/^[\S]{6,12}$/).required()
const newPwd = joi.not(joi.ref('oldPwd')).concat(password)
const rePwd = joi.string().pattern(/^[\S]{6,12}$/).required()

// 重置密码的验证规则
exports.update_password_schema = {
  body: {
    oldPwd,
    newPwd,
    rePwd
  }
}

// dataUri()指的是如下格式的字符串数据：
// 
const avatar = joi.string().dataUri().required()

// 更新头像的验证规则
exports.update_avatar_schema = {
  body: {
    avatar
  }
}